package cn.iocoder.yudao.module.mzt.service.portal;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.mzt.controller.admin.article.vo.ArticlePageReqVO;
import cn.iocoder.yudao.module.mzt.controller.app.portal.vo.*;
import cn.iocoder.yudao.module.mzt.dal.dataobject.article.ArticleDO;

import java.util.List;

/**
 * 首页 Service 接口
 *
 * @author 芋道源码
 */
public interface PortalService {
    /**
     * 获得系统配置
     *
     * @return 系统配置
     */
    List<PortalConfigRespVO> getSystemConfig();
    /**
     * 获得文章分页
     *
     * @param pageReqVO 分页查询
     * @return 文章分页
     */
    PageResult<ArticleDO> getArticlePage(ArticlePageReqVO pageReqVO);
    /**
     * 根据根据关键字检索文章
     *
     * @return 文章列表
     */
    List<ArticleDO> inquireArticle(Long categoryId,Long tagId, String keywords);
    /**
     *
     */
    PortalArticleRespVO getArticleById (Long id);
    /**
     * 获得文章标签列表
     *
     * @return 文章标签列表
     */
    List<PortalTagRespVO> getTagList();
    /**
     * 获得推荐文章列表
     *
     * @return 推荐文章列表
     */
    List<PortalRecommendArticleRespVO> getRecommendArticleList();

    /**
     * 根据分类id获取分类信息
     * @return
     */
    PortalRecommendArticleRespVO getCategoryById(PortalPageReqVO reqVO);
    /**
     * 获取推荐文章、近期文章、排行榜文章、相关推荐
     *
     * @return 推荐文章、近期文章、排行榜文章、相关推荐
     */
    PortalDataObjectRespVO getDataObject(Long categoryId);
    /**
     * 获得分类列表
     *
     * @return 分类列表
     */
    PortalCategoryRespVO getCategoryList();
}
